const weRequest = require('weRequest.min.js');
const config = require('config.js');
weRequest.init({ 
  // [可选] 存在localStorage的session名称，且CGI请求的data中会自动带上以此为名称的session值；可不配置，默认为session
  sessionName: "X-Access-Token",
  // [可选] 请求URL的固定前缀；可不配置，默认为空
  urlPerfix: config.configApp.api_base_url,
  // "https://leshijiewx.com/WendaVoice/",
  // [必填] 触发重新登录的条件，res为CGI返回的数据
  loginTrigger: function(res) {
    // 此处例子：当返回数据中的字段errcode等于0，会自动触发重新登录
    return res.code == 401;
  },
  // [必填] 用code换取session的CGI配置
  codeToSession: {
    // [必填] CGI的URL
    url: 'auth4OpenId/getOpenIdById',
    header: {
      "Content-Type": "application/x-www-form-urlencoded"
    },
    // [可选] 调用改CGI的方法；可不配置，默认为GET
    method: 'GET',
    // [可选] CGI中传参时，存放code的名称，此处例子名称就是code；可不配置，默认值为code
    codeName: 'code',
    // [可选] 登录接口需要的其他参数；可不配置，默认为{}
    data:{
      miniappInfoId:config.configApp.miniappId
    },
    // [必填] CGI中返回的session值
    success: function(res) {
      // 此处例子：CGI返回数据中的字段session即为session值
      if(res.code == "200"){
        return res.data.sessionId;
      }else{
        wx.showToast({
          title: res.message,
          icon: 'none',
          duration: 2000
        })
        return "";
      }
    }
  },
  // [可选] 登录重试次数，当连续请求登录接口返回失败次数超过这个次数，将不再重试登录；可不配置，默认为重试3次
  reLoginLimit: 2,
  // [必填] 触发请求成功的条件
  successTrigger: function(res) {
    // 此处例子：当返回数据中的字段errcode等于200时，代表请求成功，其他情况都认为业务逻辑失败
    return res.code == '200';
  },
  // [可选] 成功之后返回数据；可不配置
  successData: function(res) {
    // 此处例子：返回数据中的字段data为业务接受到的数据
    //return res.data;
    return res;
  },
  // [可选] 当CGI返回错误时，弹框提示的标题文字
  errorTitle: function(res) {
    // 此处例子：当返回数据中的字段errcode等于0x10040730时，错误弹框的标题是“温馨提示”，其他情况下则是“操作失败”
    return res.errcode == -1 ? '温馨提示' : '操作失败'
  },
  // [可选] 当CGI返回错误时，弹框提示的内容文字
  errorContent: function(res) {
    // 此处例子：返回数据中的字段msg为错误弹框的提示内容文字
    if(res.message){
      return res.message;
    }
    return res || '服务可能存在异常，请稍后重试!'
  },
  // [可选] 当出现CGI错误时，统一的回调函数，这里可以做统一的错误上报等处理
  errorCallback: function(obj, res) {
    // do some report
    //return res;
    console.log(res)
  },
  // [可选] 是否需要调用checkSession，验证小程序的登录态过期，可不配置，默认为false
  doNotCheckSession: true,
  // [可选] 上报耗时的函数，name为上报名称，startTime为接口调用开始时的时间戳，endTime为接口返回时的时间戳
  reportCGI: function(name, startTime, endTime, request) {
    wx.reportAnalytics(name, {
      time: endTime - startTime
    });
    // request({
    //    url: 'reportCGI',
    //    data: {
    //        name: name,
    //        cost: endTime - startTime
    //    },
    //    fail: function() {

    //    }
    // })
  },
  // [可选] 提供接口的mock，若不需使用，请设置为false。url为调用weRequest.request()时的url。mock数据的格式与正式接口提供的数据格式一致。
  mockJson: false,
  // [可选] 所有请求都会自动带上globalData里的参数
  globalData: function() {
    return {
      miniappInfoId:config.configApp.miniappId,
      books4minapp:"01"
    }
  },
  // [可选] session本地缓存时间(单位为ms)，可不配置，默认不设置本地缓存时间
  sessionExpireTime: 7 * 24 * 60 * 60 * 1000,
  // [可选] session本地缓存时间存在Storage中的名字，可不配置，默认为 sessionExpireKey
  sessionExpireKey: "sessionExpireKey"
});

// export default weRequest;
module.exports = weRequest